package com.ruoyi.project.business.askleave.entity;

import java.time.LocalDateTime;
import java.time.LocalTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.model.BaseEntity;

/**
 * 请假对象 schedule_ask_leave
 * 
 * @author ${author}
 * @date 2024-04-11
 */
@Data
public class AskLeave extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 假期名称 */
    @Excel(name = "假期名称")
    private String holidayName;

    /** 假期类型 HolidayType 1: 调休 2: 年假 3: 病假 4: 事假 5: 婚假 6: 丧假 7: 产假 8: 陪产假 9:工伤假  10:产检假  11:流产假  12: 哺乳假 */
    @Excel(name = "假期类型 HolidayType 1: 调休 2: 年假 3: 病假 4: 事假 5: 婚假 6: 丧假 7: 产假 8: 陪产假 9:工伤假  10:产检假  11:流产假  12: 哺乳假")
    private Integer holidayType;

    /** 考勤月 */
    @Excel(name = "考勤月")
    private Integer month;

    /** 考勤年 */
    @Excel(name = "考勤年")
    private Integer year;

    /** day of month */
    @Excel(name = "day of month")
    private Integer dayOfMonth;

    /** day of week */
    @Excel(name = "day of week")
    private Integer dayOfWeek;

    /** 打卡时间 */
    @Excel(name = "打卡时间")
    private LocalDateTime applyTimeStart;

    /** 打卡时间 */
    @Excel(name = "打卡时间")
    private LocalDateTime applyTimeEnd;

    /** 是否删除 0:否 1:是 */
    @Excel(name = "是否删除 0:否 1:是")
    private Boolean deleted;

    /** 事件操作人id */
    @Excel(name = "事件操作人id")
    private Long creator;

    /** 事件更新人id */
    @Excel(name = "事件更新人id")
    private Long updater;

    /** 租户id */
    @Excel(name = "租户id")
    private Long tenantId;



    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("holidayName", getHolidayName())
            .append("holidayType", getHolidayType())
            .append("month", getMonth())
            .append("year", getYear())
            .append("dayOfMonth", getDayOfMonth())
            .append("dayOfWeek", getDayOfWeek())
            .append("applyTimeStart", getApplyTimeStart())
            .append("applyTimeEnd", getApplyTimeEnd())
            .append("deleted", getDeleted())
            .append("creator", getCreator())
            .append("updater", getUpdater())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("tenantId", getTenantId())
            .toString();
    }
}
